/**    
 * 文件名：Ex6Sift.java    
 *    
 * 版本信息：    
 * 日期：2014年3月7日    
 * xyj 足下 xyj 2014     
 * 版权所有    
 *    
 */
package opencvtest.chapter08;

import static com.googlecode.javacv.cpp.opencv_core.cvGetSize;
import static com.googlecode.javacv.cpp.opencv_features2d.drawKeypoints;
import static com.googlecode.javacv.cpp.opencv_highgui.cvLoadImage;
import static opencvtest.OpenCVUtils.show;

import com.googlecode.javacv.cpp.opencv_core.CvScalar;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
import com.googlecode.javacv.cpp.opencv_features2d.DrawMatchesFlags;
import com.googlecode.javacv.cpp.opencv_features2d.KeyPoint;
import com.googlecode.javacv.cpp.opencv_nonfree.SIFT;

/**
 * @项目名称：opencv-test
 * @类名称：Ex6Sift
 * @类描述：
 * @创建人：zhuyi
 * @创建时间：2014年3月7日 上午9:45:23
 * @修改人：zhuyi
 * @修改时间：2014年3月7日 上午9:45:23
 * @修改备注：
 * @version
 * 
 */
public class Ex6Sift {

    public static void main(String[] args) {

        IplImage image = cvLoadImage("E:/ii/100.jpg");

        KeyPoint keypoints = new KeyPoint();
        SIFT sift = new SIFT();
        sift.detect(image, null, keypoints);
        System.out.println(keypoints);
        IplImage featureImage = IplImage.create(cvGetSize(image), image.depth(), 3);
        drawKeypoints(image, keypoints, featureImage, CvScalar.RED, DrawMatchesFlags.DRAW_RICH_KEYPOINTS);
        show(featureImage, "SIFT Features");
    }
}
